#include<iostream>
#include<cstring>
#include<map>

using namespace std;

const int N=30;

int g[N][N],n,m,k;
int res;
char s[N];
map<string,bool>mp;

void dfs(int x,int y,int u)
{
    if(u == k+1)
    {
        //cout<<s<<'\n';
        mp[s]=true;
        //res++;
        return ;
    }

    int dx[]={1,0,-1,0},dy[]={0,1,0,-1};
    for(int i=0;i<4;i++)
    {
        int a=x+dx[i],b=y+dy[i];
        if(a>=0 && a<n && b>=0 && b<m)
        {
            s[u]=g[a][b]+'0';
            dfs(a,b,u+1);
        }
    }


}

int main()
{
    cin>>n>>m>>k;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cin>>g[i][j];
        }
    }

    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            dfs(i,j,0);
        }
    }

    cout<<mp.size();
    return 0;
}
